Autogenerated HTML docs for v1.5.0.3-310-g05ef5 
diff --git a/git-receive-pack.html b/git-receive-pack.html index 6c73b5d..d02c4ac 100644 --- a/git-receive-pack.html +++ b/git-receive-pack.html 
@@ -286,55 +286,11 @@  (heads/tags) on the remote end (strictly speaking, it is the   local end receive-pack runs, but to the user who is sitting at   the send-pack end, it is updating the remote. Confused?)</p>  -<p>Before each ref is updated, if $GIT_DIR/hooks/update file exists  -and executable, it is called with three parameters:</p>  -<div class="literalblock">  -<div class="content">  -<pre><tt>$GIT_DIR/hooks/update refname sha1-old sha1-new</tt></pre>  -</div></div>  -<p>The refname parameter is relative to $GIT_DIR; e.g. for the  -master head this is "refs/heads/master". Two sha1 are the  -object names for the refname before and after the update. Note  -that the hook is called before the refname is updated, so either  -should match what is recorded in refname.</p>  -<p>The hook should exit with non-zero status if it wants to  -disallow updating the named ref. Otherwise it should exit with  -zero.</p>  -<p>Using this hook, it is easy to generate mails on updates to  -the local repository. This example script sends a mail with  -the commits pushed to the repository:</p>  -<div class="literalblock">  -<div class="content">  -<pre><tt>#!/bin/sh  -# mail out commit update information.  -if expr "$2" : '0*$' &gt;/dev/null  -then  - echo "Created a new ref, with the following commits:"  - git-rev-list --pretty "$2"  -else  - echo "New commits:"  - git-rev-list --pretty "$3" "^$2"  -fi |  -mail -s "Changes to ref $1" commit-list@mydomain  -exit 0</tt></pre>  -</div></div>  -<p>Another hook $GIT_DIR/hooks/post-update, if exists and  -executable, is called with the list of refs that have been  -updated. This can be used to implement repository wide cleanup  -task if needed. The exit code from this hook invocation is  -ignored; the only thing left for git-receive-pack to do at that  -point is to exit itself anyway. This hook can be used, for  -example, to run "git-update-server-info" if the repository is  -packed and is served via a dumb transport.</p>  -<div class="literalblock">  -<div class="content">  -<pre><tt>#!/bin/sh  -exec git-update-server-info</tt></pre>  -</div></div>   <p>There are other real-world examples of using update and   post-update hooks found in the Documentation/howto directory.</p>  -<p>git-receive-pack honours the receive.denyNonFastforwards flag, which  -tells it if updates to a ref should be denied if they are not fast-forwards.</p>  +<p>git-receive-pack honours the receive.denyNonFastForwards config  +option, which tells it if updates to a ref should be denied if they  +are not fast-forwards.</p>   </div>   <h2>OPTIONS</h2>   <div class="sectionbody">  @@ -349,6 +305,108 @@  </dd>   </dl>   </div>  +<h2>pre-receive Hook</h2>  +<div class="sectionbody">  +<p>Before any ref is updated, if $GIT_DIR/hooks/pre-receive file exists  +and is executable, it will be invoked once, with three parameters  +per ref to be updated:</p>  +<div class="literalblock">  +<div class="content">  +<pre><tt>$GIT_DIR/hooks/pre-receive (refname sha1-old sha1-new)+</tt></pre>  +</div></div>  +<p>The refname parameter is relative to $GIT_DIR; e.g. for the master  +head this is "refs/heads/master". The two sha1 arguments after  +each refname are the object names for the refname before and after  +sha1-old and sha1-new should be valid objects in the repository.</p>  +<p>This hook is called before any refname is updated and before any  +fast-forward checks are performed.</p>  +<p>If the pre-receive hook exits with a non-zero exit status no updates  +will be performed, and the update, post-receive and post-update  +hooks will not be invoked either. This can be useful to quickly  +bail out if the update is not to be supported.</p>  +</div>  +<h2>update Hook</h2>  +<div class="sectionbody">  +<p>Before each ref is updated, if $GIT_DIR/hooks/update file exists  +and is executable, it is invoked once per ref, with three parameters:</p>  +<div class="literalblock">  +<div class="content">  +<pre><tt>$GIT_DIR/hooks/update refname sha1-old sha1-new</tt></pre>  +</div></div>  +<p>The refname parameter is relative to $GIT_DIR; e.g. for the master  +head this is "refs/heads/master". The two sha1 arguments are  +the object names for the refname before and after the update.  +Note that the hook is called before the refname is updated,  +or it should match what is recorded in refname.</p>  +<p>The hook should exit with non-zero status if it wants to disallow  +updating the named ref. Otherwise it should exit with zero.</p>  +<p>Successful execution (a zero exit status) of this hook does not  +ensure the ref will actully be updated, it is only a prerequisite.  +As such it is not a good idea to send notices (e.g. email) from  +this hook. Consider using the post-receive hook instead.</p>  +</div>  +<h2>post-receive Hook</h2>  +<div class="sectionbody">  +<p>After all refs were updated (or attempted to be updated), if any  +ref update was successful, and if $GIT_DIR/hooks/post-receive  +file exists and is executable, it will be invoke once with three  +parameters for each successfully updated ref:</p>  +<div class="literalblock">  +<div class="content">  +<pre><tt>$GIT_DIR/hooks/post-receive (refname sha1-old sha1-new)+</tt></pre>  +</div></div>  +<p>The refname parameter is relative to $GIT_DIR; e.g. for the master  +head this is "refs/heads/master". The two sha1 arguments after  +each refname are the object names for the refname before and after  +the update. Refs that were created will have sha1-old equal to  +the repository.</p>  +<p>Using this hook, it is easy to generate mails describing the updates  +to the repository. This example script sends one mail message per  +ref listing the commits pushed to the repository:</p>  +<div class="literalblock">  +<div class="content">  +<pre><tt>#!/bin/sh  +# mail out commit update information.  +while test $# -gt 0  +do  + if expr "$2" : '0*$' &gt;/dev/null  + then  + echo "Created a new ref, with the following commits:"  + git-rev-list --pretty "$2"  + else  + echo "New commits:"  + git-rev-list --pretty "$3" "^$2"  + fi |  + mail -s "Changes to ref $1" commit-list@mydomain  + shift; shift; shift; # discard this ref's args  +done  +exit 0</tt></pre>  +</div></div>  +<p>The exit code from this hook invocation is ignored, however a  +non-zero exit code will generate an error message.</p>  +<p>Note that it is possible for refname to not have sha1-new when this  +hook runs. This can easily occur if another user modifies the ref  +after it was updated by receive-pack, but before the hook was able  +to evaluate it. It is recommended that hooks rely on sha1-new  +rather than the current value of refname.</p>  +</div>  +<h2>post-update Hook</h2>  +<div class="sectionbody">  +<p>After all other processing, if at least one ref was updated, and  +if $GIT_DIR/hooks/post-update file exists and is executable, then  +post-update will called with the list of refs that have been updated.  +This can be used to implement any repository wide cleanup tasks.</p>  +<p>The exit code from this hook invocation is ignored; the only thing  +left for git-receive-pack to do at that point is to exit itself  +anyway.</p>  +<p>This hook can be used, for example, to run "git-update-server-info"  +if the repository is packed and is served via a dumb transport.</p>  +<div class="literalblock">  +<div class="content">  +<pre><tt>#!/bin/sh  +exec git-update-server-info</tt></pre>  +</div></div>  +</div>   <h2>SEE ALSO</h2>   <div class="sectionbody">   <p><a href="git-send-pack.html">git-send-pack(1)</a></p>  @@ -367,7 +425,7 @@  </div>   <div id="footer">   <div id="footer-text">  -Last updated 19-Jan-2007 00:37:30 UTC  +Last updated 08-Mar-2007 02:42:38 UTC   </div>   </div>   </body>